# from flask import Flask
#
# app = Flask(__name__)
#
# @app.route('/')
# @app.route('/index')
# def hello():
#     return 'Hello World!'
#
#
# if __name__ == '__main__':
#     app.run()

# -*- coding: utf-8 -*-
from werkzeug.utils import secure_filename
from flask import Flask, render_template, jsonify, request, send_file, send_from_directory
import time
import os
import base64

app = Flask(__name__)
pwd = os.path.dirname(__file__)
UPLOAD_FOLDER = os.path.join(pwd, 'static')
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
basedir = os.path.abspath(os.path.dirname(__file__))
ALLOWED_EXTENSIONS = set(['txt', 'png', 'jpg', 'xls', 'JPG', 'PNG', 'xlsx', 'gif', 'GIF','mp4'])
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

# 用于判断文件后缀
def allowed_file(filename):
    return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS

# 用于测试上传，稍后用到
@app.route('/test/upload')
def upload_test():
    return render_template('upload.html')

# 上传文件
@app.route('/api/upload', methods=['POST'], strict_slashes=False)
def api_upload():
    file_dir = os.path.join(basedir, app.config['UPLOAD_FOLDER'])
    if not os.path.exists(file_dir):
        os.makedirs(file_dir)
    f = request.files['myfile']  # 从表单的file字段获取文件，myfile为该表单的name值
    if f and allowed_file(f.filename):  # 判断是否是允许上传的文件类型
        fname = f.filename
        # print fname
        print(fname)
        ext = fname.rsplit('.', 1)[1]  # 获取文件后缀
        unix_time = int(time.time())
        new_filename = str(unix_time) + '.' + ext  # 修改了上传的文件名
        f.save(os.path.join(file_dir, new_filename))  # 保存文件到upload目录
        # print new_filename
        print(new_filename)
        # token = base64.b64encode(new_filename)
        # # print token
        # print(token)

        return jsonify({"errno": 0, "errmsg": "上传成功"})
    else:
        return jsonify({"errno": 1001, "errmsg": "上传失败"})


if __name__ == '__main__':
    app.run(host='192.168.1.5', port=8080, debug=True)